#ifndef THREAD4_H
#define THREAD4_H

#include <stdint.h>
#include <pthread.h>
#include "log_utils.h"

// 接近传感器GPIO引脚定义
#define PROXIMITY_SENSOR_1_GPIO "4_A3_d"  // 接近传感器GPIO4_A3，编号131 (432+8+3)

// 接近传感器状态
typedef struct {
    uint8_t sensor1_state;     // 第一个接近传感器状态：0表示检测到物体(有效)，1表示未检测到(无效) - 低电平有效
    uint32_t timestamp;        // 时间戳
} proximity_sensor_t;

// 全局变量声明
extern proximity_sensor_t g_proximity_sensor;
extern pthread_mutex_t g_proximity_sensor_mutex;

// 线程4函数声明
void *thread4_function(void *arg);

// 获取接近传感器状态的函数
int get_proximity_sensor_state(proximity_sensor_t *state);

// 调试函数：手动测试GPIO状态
void debug_proximity_sensor_gpio(void);

// GPIO初始化函数
int init_gpio_sensor(const char *gpio_pin);

// 读取GPIO状态函数
int read_gpio_state(const char *gpio_pin);

// 清理GPIO资源函数
void cleanup_gpio_sensor(const char *gpio_pin);

#endif /* THREAD4_H */ 